GDK W32: custom (non-WM) drag-move and drag-resize code
authorРуслан Ижбулатов <lrn1986@gmail.com>
Sat, 6 Feb 2016 12:06:41 +0000 (12:06 +0000)
committerРуслан Ижбулатов <lrn1986@gmail.com>
Wed, 2 Mar 2016 21:39:32 +0000 (21:39 +0000)
commite03946bd285d860fc9011a2fbb5363c2a176aaab
tree3b252bed91df9b426b4d03d94ab3af2885b26bff
parent597151c736b7c0979be48d7aef2c3bfab4998bb9
GDK W32: custom (non-WM) drag-move and drag-resize code

Normally works only on CSD windows, non-CSD windows continue
to use WM modal loop for drag-resizing and drag-moving. However,
if it is activated on non-CSD windows, it does work.

Has the advantage of being completely immune to AeroSnap.
AeroSnap only worked partially on CSD windows, with the only part
that worked being "don't let users drag window titlebar outside of
the desktop". Now AeroSnap doesn't work on windows moved by
this code at all, which is good, since they currently don't work
well with it due to the way shadows are drawn.

It's possible to also re-implement AeroSnap (or something similar),
but that is a story for another commit.

This code was originally intended to fix the problem of window
size and window contents desynchronization, but failed to achieve
that result in the end. Nevertheless, it serves as a foundation for
other changes to the way window resizing works.

https://bugzilla.gnome.org/show_bug.cgi?id=761629
gdk/win32/gdkevents-win32.c
gdk/win32/gdkprivate-win32.h
gdk/win32/gdkwindow-win32.c
gdk/win32/gdkwindow-win32.h